package com.zjsru.plan2023.oneday;

/**
 * @Author: CookLee
 * @Date: 2023/5/5
 *
 *  处理用时最长的那个任务的员工
 *
 *  输入：n = 10, logs = [[0,3],[2,5],[0,9],[1,15]]
 * 输出：1
 * 解释：
 * 任务 0 于时刻 0 开始，且在时刻 3 结束，共计 3 个单位时间。
 * 任务 1 于时刻 3 开始，且在时刻 5 结束，共计 2 个单位时间。
 * 任务 2 于时刻 5 开始，且在时刻 9 结束，共计 4 个单位时间。
 * 任务 3 于时刻 9 开始，且在时刻 15 结束，共计 6 个单位时间。
 * 时间最长的任务是任务 3 ，而 id 为 1 的员工是处理此任务的员工，所以返回 1 。
 *
 *
 */
public class HardestWorker {
    
    /**
     * 辛苦工人
     *
     * @param logs 日志
     * @return int
     */
    public int hardestWorker(int[][] logs) {
        //初始化数据
        int ans = logs[0][0];
        int maxCost = logs[0][1];
        for (int i = 1; i < logs.length; i++) {
            int idx = logs[i][0];
            int cost = logs[i][1] - logs[i - 1][1];
            //相等的情况按照工号大小排
            if (cost > maxCost || (cost == maxCost && idx < ans)) {
                ans = idx;
                maxCost = cost;
            }
        }
        return ans;
    }
    
    public static void main(String[] args) {
        HardestWorker hardestWorker = new HardestWorker();
        int[][] logs = new int[][] {{0, 3}, {2, 5}, {0, 9}, {1, 15}};
        System.out.println(hardestWorker.hardestWorker(logs));
    }
}
